The last 10-20 years has seen a major transition in the audio industry from analog formats, such as cassette tapes, FM radio, and records, to digital formats, such as compact disks (CD), mini-disks (MD), and digital versatile disks (DVD). The widespread use of personal computers and the Internet has furthered this trend with the introduction of new electronic music services that allow music or other audio content to be distributed electronically through a computer and the Internet. Many of these digital audio products and services make use of audio compression technologies (e.g., MP3, Dolby AC3, ATRACS, MPEG-AAC, and Windows Media Player) to reduce the bit rate required for high fidelity music reproduction to the range of 64-256 kbps from the 1440 kbps used on uncompressed CD recordings. The use of compression, in conjunction with the increased storage capacity of semiconductor devices (e.g., SRAM, DRAM and flash memories) and computer disks, has led to several new products for use in digital audio applications.
In a typical digital audio application, an analog audio signal is sampled, typically at 32, 44.1, or 48 kHz, and then is digitized with 16 or more bits using an analog-to-digital converter. If the audio source is stereo, then this process is repeated for both the right and left channels. Similarly, for a surround sound audio system, which may have six or more channels, each channel is sampled and digitized. A typical CD includes two stereo channels, each of which is sampled at 44.1 kHz with 16 bits per sample, and produces data requiring 1411.2 kbps. This leaves room for slightly more than 1 hour of music on a 650 MB CD. In a playback application, the digital music samples are reconverted to an analog signal using a digital-to-analog converter, and the analog signal is amplified and played through one or more speakers.
Several known audio compression techniques can compress a stereo music signal to the range of 64-256 kbps without significantly changing the quality of the audio signal (i.e., while maintaining CD-like quality). The MPEG-1 standard describes three audio compression methods, referred to as Layers 1, 2, and 3, for reducing the bit rate of a digital audio signal. The method described under Layer 3, which is commonly known as MP3, is generally considered to achieve CD-like quality at 128 kbps and virtually indistinguishable quality at 256 kbps. Since a bit rate of 128 kbps represents a compression ratio of 11 relative to a CD, an MP3-based portable music player can store over an hour of music in 64 MB of flash memory. Alternatively, a personal computer (PC) equipped with a 20 GB hard disk can store over 300 hours of MP3 compressed music at 128 kbps. In addition, compressed audio material is much easier to send and receive across the Internet, particularly with new higher speed connections, such as, for example, V.90, cable modems, and DSL.
These capabilities have contributed to a new, PC-centered audio trend in which audio content in general, and music in particular, is stored on a PC's disk drive. The audio content is either obtained from the Internet using an electronic music provider, such as MP3.COM (see http://www.mp3.com), or from any of the growing number of Internet radio stations. Alternatively, audio data corresponding to digital music can be obtained by using a CD-ROM drive to extract the audio data from one or more CDs (a technique often referred to as “ripping” of CDs). Similarly, analog music from, for example, records or tapes can be digitized using an A-to-D converter, and the resulting digital data can be stored on the PC's disk drive.
Once the audio data are provided to the PC, the audio data can be compressed, if necessary, using any of the available audio compression algorithms, and can be organized and stored for later playback using the PC's sound card. In addition, the PC can upload the material to a portable music player through a serial port or other connection for playback in the car, office, or other location.
The ripping of CDs onto a PC's disk drive has been facilitated by the rise of software to identify a CD from a large database consisting of album title, artist, and song titles for several hundred thousand CDs. The identification process typically uses the number of tracks and the track lengths to compute a disk ID or key that is then used to look up the album title, artist, and song titles from the CD database (CDDB). The album title, artist, and song title information is useful for naming the files produced when the CD contents are extracted, and eliminates the need for the user to manually enter all of this information.
One key commonly used to identify audio CDs was originally developed as part of the public domain XMCD software package for Unix systems, and is a 32 bit number generated in a specific known way from the number and length of the tracks. Unfortunately, many of the fields within this disk ID are not independent, which means that the actual information content (i.e. entropy) is much lower, such that a relatively large database representing several hundred thousand CDs may include several CDs that generate duplicate disk IDs. Another problem is that some CDs have several versions, each with slightly different track lengths, so that each version produces a different disk ID. The lack of uniqueness and sensitivity to minor variations in the CD are problems associated with using this particular key.
A more complex approach uses a fuzzy matching technique to address these problems. This approach does not require a disk ID to find the selected CD in the database. Instead, approximate length information is computed for the CD being identified and then this information is fed over the Internet to a server, where it is compared against approximate length information computed for different entries in the database. The CD is then identified as corresponding to the entry in the database that has the most closely matching length information. This approach solves some of the problems associated with searching for the typical disk ID. However, the storage requirements are increased significantly due to the need to store length information for each CD in the database. In addition, the search complexity is significantly higher since the approximate length information must be computed and compared for many entries in the database during the lookup of any CD. This requires large computational resources, which makes it difficult to add local CD identification capability to a low cost consumer product. As a result, this approach is more applicable to an Internet CD database server or to high cost devices with significant memory and processing capability.